
import sys
import time
from datetime import datetime, timedelta

#时间戳转时间串 TS形如："1686535200.000"
#                     "1686478803.3775818"
def TS2TimeStr(TS):
    TimeObj = datetime.fromtimestamp(float(TS));
    return datetime.strftime(TimeObj, "%Y-%m-%d %H:%M:%S");  # 转换为指定的格式


#为形如"2023-04-15 22:33:00"的时间串增加时间后形成新的时间串
def TimeStrAddHour(TimeStr, Hours=24):
    date = datetime.strptime(TimeStr, "%Y-%m-%d %H:%M:%S");
    date = date + timedelta(hours=24);
    return date.strftime("%Y-%m-%d %H:%M:%S");

#将形如"04月25日 10:00"转换成标准的时间串信息
def TimeStrFormat(TimeStr):
    date = datetime.strptime(TimeStr, "%m月%d日 %H:%M");
    CurYear = datetime.now().year;
    date = date.replace(year=CurYear); #设置为2023年
    return date.strftime("%Y-%m-%d %H:%M:%S");

def TimeStrFormat1(TimeStr):
    date = datetime.strptime(TimeStr, "%Y年%m月%d日%H:%M");
    CurYear = datetime.now().year;
    date = date.replace(year=CurYear); #设置为2023年
    return date.strftime("%Y-%m-%d %H:%M:%S");

def TimeStrFormatIn(TimeStr, Format):
    date = datetime.strptime(TimeStr, Format);
    CurYear = datetime.now().year;
    date = date.replace(year=CurYear); #设置为2023年
    return date.strftime("%Y-%m-%d %H:%M:%S");
    
#形如 "04月25日 10:00"， 解析获得与当前时间进行比较
#返回值：0 相等。-1 小于当前时间；1 大于当前时间；
def TimeStrCmpNow(TimeStr):
    dateSrc = datetime.strptime(TimeStr, "%m月%d日 %H:%M");
    dateSrc = dateSrc.replace(year=2023);    #设置为2023年
    dateNow = datetime.now();
    #与当前时间进行比较
    if dateSrc > dateNow:
        return 1;
    elif dateSrc < dateNow:
        return -1;
    else:
        return 0;

#显示当前时间
def CurTimeStr():
    return datetime.now().strftime('%Y.%m.%d %H:%M:%S');


if __name__ == "__main__":

    print(TimeStrFormatIn('08月10日10:00', '%m月%d日%H:%M'));
    